home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / Projects / Examples / Demos / Cardew1a < prev    next >
Lisp/Scheme  |  1998-10-26  |  4KB  |  146 lines

  1. ;;; Cardew Studies for six musicians: for Sam Richards 
  2. ; No.1 Rising, falling, hovering. . .
  3. ; by Nigel Morgan
  4. ; to analyze the score double-click high-lighted keywords
  5.  
  6. ;; #1a : Rising. . 
  7.  
  8. ;; material
  9.  
  10. (setq material '(a b c g h i)) ; Slonimsky Pattern 05
  11.  
  12. (setq tonal (activate-tonality 
  13.              (chromatic g 4) (chromatic g# 4)
  14.              (chromatic a 4) (chromatic c# 5) 
  15.              (chromatic d 5) (chromatic e& 5)))
  16.  
  17. (setq tonal-1 (transpose-chords tonal 1)
  18.       tonal-2 (transpose-chords tonal 2)
  19.       tonal-3 (transpose-chords tonal 3)
  20. )
  21.  
  22. (setq tonal-x (append tonal tonal-1 tonal-2 tonal-3))
  23.  
  24. (setq segmt1 '(-g -f -e a b c = = =))
  25. (setq segmt2 '(= = g h i m n o))
  26. (setq len-source1  '(1/8 1/8 1/16 1/16 1/16 1/16 1/4)) ; fl, trpt, cello
  27. (setq len-source0 '(1/8 1/8 1/16 1/16 1/4 1/4 1/2)) ; voice
  28.  
  29. (setq mat1 (power-set segmt1)) ; power-set is MRAC function
  30. (setq mat2 (power-set segmt2))
  31. (setq len0 (power-set len-source0))
  32. (setq len1 (power-set len-source1))
  33. (setq len2 (do-section :all '(length-repeat-i 8 '1/4 x)
  34.                        (power-set len-source1)))
  35.  
  36.  
  37. ;; score
  38.  
  39. (def-symbol
  40.   part-1  (symbol-shuffle mat1 0.1)
  41.   part-2  (symbol-shuffle mat2 0.21) 
  42.   part-3  (do-section :all 
  43.                       '(randomize-octaves 0.3 nil -2 0 x) 
  44.                       (symbol-shuffle mat2 0.3)) 
  45.   part-4   (do-section :all 
  46.                        '(randomize-octaves 0.4 nil 0 2 x)
  47.                        (symbol-shuffle mat1 0.4))
  48.   part-5  (symbol-shuffle mat2 0.51)
  49.   part-6  (symbol-shuffle mat1 0.6)
  50. )
  51.  
  52.  
  53. (def-length
  54.   part-1  (symbol-shuffle len1 0.1)
  55.   part-2  (symbol-shuffle len1 0.2)
  56.   part-3  (symbol-shuffle len2 0.3) 
  57.   part-4  (symbol-shuffle len2 0.4)
  58.   part-5  (symbol-shuffle len1 0.5) 
  59.   part-6  (symbol-shuffle len0 0.6)
  60. )
  61.  
  62. (def-zone
  63.  default  (symbol-trim 
  64.            (length tonal-x)
  65.                    (length-syncopate 0.9 5 1 
  66.                                      (mapcar 'make-zone 
  67.                                              (get-lengths-of 'part-6))))
  68. )
  69.  
  70. #| ; to work out time-signatures
  71. (symbol-trim 24 (mapcar (function (lambda (x) 
  72.      (/ x 120))) (mapcar 'make-zone (get-lengths-of 'part-6))))
  73. |#
  74.  
  75.  
  76. (def-velocity
  77.   part-1 (do-section :all '(gen-cresc 40 84 (length x)) 
  78.                      (get-lengths-of 'part-1)) 
  79.  
  80.   part-2 (do-section :all '(gen-cresc 40 84 (length x)) 
  81.                      (get-lengths-of 'part-2)) 
  82.  
  83.   part-3  (do-section :all '(gen-cresc 40 84 (length x)) 
  84.                       (get-lengths-of 'part-3)) 
  85.  
  86.   part-4  (do-section :all '(gen-cresc 40 84 (length x)) 
  87.                       (get-lengths-of 'part-4)) 
  88.  
  89.   part-5  (do-section :all '(gen-cresc 40 84 (length x)) 
  90.                       (get-lengths-of 'part-5)) 
  91.  
  92.   part-6  (do-section :all '(gen-cresc 60 84 (length x)) 
  93.                        (get-lengths-of 'part-6)) 
  94.  
  95. )
  96.  
  97. (def-tonality
  98.   part-1  (transpose-chords tonal-x 24)
  99.   part-2  tonal-x
  100.   part-3  tonal-x
  101.   part-4  tonal-x
  102.   part-5  (transpose-chords tonal-x -12)
  103.   part-6  (transpose-chords tonal-x 12)
  104. )   
  105.  
  106.  
  107. (def-channel
  108.   part-1  1
  109.   part-2  2
  110.   part-3  3
  111.   part-4  4
  112.   part-5  5
  113.   part-6  6
  114. )
  115.  
  116. (def-program gm-sound-set
  117.    part-1 flute
  118.    part-2 muted-trumpet
  119.    part-3 acoustic-grand-piano
  120.    part-4 marimba
  121.    part-5 cello
  122.    part-6 voice-oohs
  123. )
  124.  
  125. (def-controller gm-controllers
  126.   (part-1  panning  '((10))) 
  127.   (part-2  panning  '((120)))
  128.   (part-3  panning  '((54)))
  129.   (part-4  panning  '((74)))
  130.   (part-5  panning  '((30)))
  131.   (part-6  panning  '((86)))
  132. )
  133.  
  134. (def-tempo 76)
  135.  
  136. (midiport :printer)
  137.  
  138. (compile-instrument-p "ccl;output:" "Cardew1a midi"
  139.   part-1
  140.   part-2
  141.   part-3   
  142.   part-4
  143.   part-5
  144.   part-6  
  145. )
  146.